﻿#ifndef _WND_SET_H_
#define _WND_SET_H_

#include "common_inc.h"
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/gdi.h>
#include "wnd_main.h"
//#include "wnd_create.h"



#ifdef __cplusplus
extern "C" {
#endif  /* __cplusplus */


extern CTRLDATA stGlbBasicSetButton[];


#define MINI_SET_ICON_NUM		6		/* 设备管理菜单图标的个数*/




/* 页面的私有数据*/
#define DEV_SWITCH_PAGE_ON_OFF 		1
#define DEV_SWITCH_PAGE_SLEEP 		2




/* 消息ID*/
#define IDC_SET_BASIC_MENU 				0x1113			/* 主菜单 基础设置、视频监控、数据采集等的消息id*/
#define	IDC_SET_BASIC_LIST 				0x2114			/* 基础设置列表*/
#define	IDC_SET_BASIC_DEV_SWITCH  		0x1115			/* 基础设置 里面的 开关机设 置属性表 msg*/


#define IDC_SET_DEV_SWITCH 			0x1201			/* 开关机*/
#define IDC_SET_STAR_UP_INFO	 	0x1202			/* 开机方式 静态框*/
#define IDC_SET_STAR_UP_MODE	 	0x1203			/* 开机方式*/

#define IDC_SET_OFF_INFO	 		0x1204			/* 关机方式 静态框*/
#define IDC_SET_OFF_MODE	 		0x1205			/* 关机方式*/

#define IDC_START_DELAY_INFO 		0x1206			/* 点火开机延时 静态框*/
#define IDC_START_DELAY_INPUT 		0x2207			/* 点火开机延时 输入*/
#define IDC_START_DELAY_INFO2 		0x1208			/* 点火开机延时 静态框 显示说明*/

#define IDC_SHUTDOWN_DELAY_INFO 	0x1209			/* 点火关机延时 静态框*/
#define IDC_SHUTDOWN_DELAY_INPUT 	0x1210			/* 点火关机延时 输入*/
#define IDC_SHUTDOWN_DELAY_INFO2 	0x1211			/* 点火关机延时 静态框 显示说明*/

#define IDC_START_TIMING_INFO 		0x1212			/* 定时开机 开始时间 消息显示*/
#define IDC_START_TIMING_INPUT 		0x1213			/* 定时开机 开始时间 输入*/
#define IDC_START_TIMING_INFO2 		0x1214			/* 定时开机 结束时间 消息显示*/
#define IDC_START_TIMING_INPUT2 	0x1215			/* 定时开机 结束时间 输入*/


#define IDC_SET_SLEEP_MODE_INFO 	0x1220			/* 休眠模式 信息显示*/
#define IDC_SET_SLEEP_MODE_INPUT 	0x1221			/* 休眠模式 输入*/

#define IDC_SLEEP_LOW_INFO 			0x1222			/* 低压保护 信息显示*/
#define IDC_SLEEP_LOW_INPUT 		0x1223			/* 低压保护 输入*/


#define IDC_SLEEP_BATT_LOW_INFO 	0x1224			/* 低压保护 信息显示*/
#define IDC_SLEEP_BATT_LOW_INPUT 	0x1225			/* 低压保护 输入*/
#define IDC_SLEEP_BATT_LOW_INFO2 	0x1226			/* 低压保护 信息显示*/

#define IDC_SLEEP_REST_VOL_INFO 	0x1227			/* 恢复开机电压 信息显示*/
#define IDC_SLEEP_REST_VOL_INPUT 	0x1228			/* 恢复开机电压 输入*/
#define IDC_SLEEP_REST_VOL_INFO2 	0x1229			/* 恢复开机电压 信息显示*/

#define IDC_SLEEP_LOW_REP_INFO 		0x1230			/* 低压是否上报 信息显示*/
#define IDC_SLEEP_LOW_REP_INPUT 	0x1231			/* 低压是否上报 输入*/


#define IDC_SLEEP_IGN_DELAY_INFO 	0x1232			/* 点火休眠延时 信息显示*/
#define IDC_SLEEP_IGN_DELAY_INPUT 	0x1233			/* 点火休眠延时 输入*/
#define IDC_SLEEP_IGN_DELAY_INFO2 	0x1234			/* 点火休眠延时 信息显示*/


#define IDC_SLEEP_OUTAGE_MODE_INFO 		0x1235			/* 断电模式延时 信息显示*/
#define IDC_SLEEP_OUTAGE_MODE_INPUT 	0x1236		/* 断电模式延时 输入*/
#define IDC_SLEEP_OUTAGE_MODE_INFO2 	0x1237		/* 断电模式延时 信息显示*/

#define	IDC_SET_DEV_SWITCH_SAVE  		0x1240		/* 基础设置 里面的 开关机设 保存m*/


/* 设置界面自定义的命令*/
/*
typedef enum dev_set_cmd_e {




} DEV_SET_CMD_E;
*/
/* 设置菜单选项标识*/
typedef enum dev_set_type_e {
	DEV_SET_BASIC_SET_E = 550,		/* 基础设置*/
	DEV_SET_VIDEO_E,				/* 视频监控*/
	DEV_SET_DATE_E,					/* 数据采集*/
	DEV_SET_ALARM_E,				/* 报警设置*/
	DEV_SE_DEV_QUE_E,				/* 设备维护*/
	DEV_SETT_QUIT_E,				/* 退出*/

} DEV_SET_TYPE_E;

/* 基础设置消息标识ID*/
typedef enum basic_set_msg_e {
	BASIC_MSG_REGISTER_E = 0x20,		/* 注册消息*/
	BASIC_MSG_TIME_E,				/* 时间设置*/
	BASIC_MSG_DEV_ON_OFF_E,			/* 开关机设置*/
	BASIC_MSG_USER_E,				/* 用户设置*/
	BASIC_MSG_NET_E,				/* 网络设置*/
	BASIC_MSG_NET_APP_E,			/* 网络应用设置*/
	BASIC_MSG_DEV_ON_OFF_ATTR_PAGE_E,

} BASIC_SET_MSG_E;


#define WND_SET_GROP_MENU		1000
#define IDC_SET_CTRL_SETS			1001

#if 0
struct mini_set_wnd_s;

/* 图标按钮消息 用图标创建按钮的时候需要填充后面两个参数*/
typedef struct basic_set_power_on_off_s {
	char s8Name[64];

	int s32DevOnOffIndex;				/* 基础设置 开关机选项 开关机页面的索引*/
	int s32DevOnOffDlg; 				/* 基础设置 开关机选项 开关机页面的对话框id*/

	int s32DevSleepIndex;				/* 基础设置 开关机选项 休眠页面的索引 */
	int s32DevSleepDlg; 				/* 基础设置 开关机选项 休眠页面的对话框id */


	DLGTEMPLATE *pstPageInfo;
	int s32PageNum;						/* 属性页数量*/
	int (*BasicSetDevSwitchFunc)(struct wnd_api_handle_s *pstMenuWnd);		/* 开关机页面创建*/
	int (*FlushDevSwitchDisplay)(WND_API_HANDLE_S * pstMainWnd);
	int (*SaveDevSwitchSParam)(WND_API_HANDLE_S *pstMainWnd);


}BASIC_SET_POWER_ON_OFF_S;


/* 图标按钮消息 用图标创建按钮的时候需要填充后面两个参数*/
typedef struct wnd_set_basic_set_s {
	char s8Name[64];
	WND_API_LIST_MENU_HNADLE_S stBasicSetListMenu;				/* 基础设置菜单*/
	BASIC_SET_POWER_ON_OFF_S stPowerOnOff;						/* 开关机*/
	BASIC_SET_MSG_E enBasicSetSta;								/* 当前基础设置所处的页面*/
}WND_SET_BASIC_SET_S;

/* 主菜单*/
typedef struct wnd_set_main_menu_s {
	char s8Name[64];
	HWND u32WndMenuMain;			/* 设备管理主菜单id*/
	WND_API_ICON_MENU_HNADLE_S stIconHandle;

}WND_SET_MAIN_MENU_S;


/* 保存按钮*/
typedef struct wnd_set_save_s {
	char s8Name[64];
	HWND u32WndDevSwitchSave;			/* 保存 按钮*/
	unsigned long u64Style;
	int s32Id;
	int (*SaveButtonCreate)(WND_API_HANDLE_S *pstWndHandle);
	int (*SaveParam)(WND_API_HANDLE_S *pstMainWnd);
	void (*SaveProc)(unsigned int u32WndId, int s32Id, int s32Param, unsigned long u64AddData);

}WND_SET_SAVE_S;


/* 公共属性*/
typedef struct wnd_set_common_attr_s {

	/* 列表*/
	HWND u32WndMenuList;			/* 列表ID*/
	bool bWndCreatList;				/* 列表是否被创建*/
	DEV_SET_TYPE_E enType;			/* 当前窗口所创建的列表类型 即画面显示哪个大的选项*/

	/* 属性表*/
	HWND u32WndCent;				/* 列表对应的内容窗口id */
	bool bWndCreatCent; 			/* 列表对应的内容窗口是否被创建*/
	DLGTEMPLATE stDlgCent;			/* 设置消息对话框属性 具体的操作界面 用的是对话框*/

	bool bDisplayMenu;					/* 是否显示菜单窗口*/
} WND_SET_COMMON_ATTR_S;


/* 设置管理页面私有数据*/
typedef struct mini_set_wnd_s {
	WND_SET_MAIN_MENU_S stMainMenu;			/* 主菜单*/
	WND_SET_BASIC_SET_S stBaiscSet;			/* 基础设置 列表*/
	WND_SET_SAVE_S stSaveButton;			/* 保存参数相关*/
	WND_SET_COMMON_ATTR_S stCommonAttr;		/* 公共属性*/
} MINI_SET_WND_S;


MINI_SET_WND_S stGlbSetWnd;



extern void * MINI_SET_WindowCreate(void *pArg);
extern int WND_SET_DestroyMainWnd(WND_API_HANDLE_S *pstMainWnd);



extern int MINI_SET_WND_SetPowerOnOff(WND_API_HANDLE_S * pstMainWnd);




#endif










//extern WND_WIDGET_HANDLE_S *pstGlbWndSetHandle;


extern WND_WIDGET_S stGlbSetWndCtrl[];
int s32GlbSetCtrlNum;


/*!
 * 设置界面回调函数
 *
 */
extern int WND_SET_Proc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam);





WND_WIDGET_S stGlbSetWindow;

#ifdef __cplusplus
}
#endif  /* __cplusplus */


#endif
